/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package tpdisenio2009.mvp.display;

import java.awt.event.ActionListener;
import java.awt.event.ItemListener;
import java.util.Date;
import java.util.List;
import javax.swing.event.DocumentListener;
import tpdisenio2009.model.beans.City;
import tpdisenio2009.model.beans.Country;
import tpdisenio2009.model.beans.State;

/**
 *
 * @author DeuterioX
 */
public interface CreateUserView extends View{

    public static final int LAST_NAME = 0;
    public static final int FIRST_NAME = 1;
    public static final int GENRE = 2;
    public static final int DOCUMENT = 3;
    public static final int DOCUMENT_TYPE = 4;
    public static final int BIRTH_DATE = 5;
    public static final int PASSWORD = 6;
    public static final int CONFIRMED_PASSWORD = 7;
    public static final int EMAIL = 8;

    String getLastName();
    String getFirstName();

    void setGenre( List<Character> genres );
    Character getGenre();

    void setDocumentType( List<String> DocumentTypes);
    String getDocumentType();

    String getDocument();
    Date getBirthDate();

    String getStreet();
    String getStreetNumber();
    String getDepartment();
    String getBlock();
    String getFloor();

    void setCountry( List<Country> countries );
    Country getCountry();

    void setState( List<State> States );
    State getState();
    
    void setCity( List<City> cities );
    City getCity();

    String getPassword();
    String getConfirmedPassword();
    String getEmail();

    void enableState();
    void enableCity();
    void disableState();
    void disableCity();

    void close();

    void showError( int focuElement, String errorMessage, String titleMessageWindow );
    void showNotification( String notificationMessage, String notificationTitle);

    void addDocumentTypeChangeListener( ItemListener listener );
    void removeDocumentTypeChangeListener( ItemListener listener );

    void addCountryChangeListener( ItemListener listener );
    void removeCountryChangeListener( ItemListener listener );

    void addStateChangeListener( ItemListener listener );
    void removeStateChangeListener( ItemListener listener );

    void addCityChangeListener( ItemListener listener );
    void removeCityChangeListener( ItemListener listener );

    void addSaveListener( ActionListener listener );
    void removeSaveListener( ActionListener listener );

    void addCancelListener( ActionListener listener );
    void removeCancelListener( ActionListener listener );

    void addStreetDocumentListener( DocumentListener listener );
    void removeStreetDocumentListener( DocumentListener listener );

    void enableStreetNumber();
    void disableStreetNumber();

    void addStreetNumberDocumentListener( DocumentListener listener );
    void removeStreetNumberDocumentListener( DocumentListener listener );

    void enableDepartment();
    void disableDepartment();

    void enableBlock();
    void disableBlock();

    void addDepartmentDocumentListener( DocumentListener listener );
    void removeDepartmentDocumentListener( DocumentListener listener );

    void enableFloor();
    void disableFloor();

    boolean showConfirmation( String notifiactionMessage );
}
